// 1.引入express模块
const express = require('express');
const { appendFile } = require('fs');
const { send } = require('process');

// 2.引入连接池模块
const pool = require('../pool.js')

// 3.因为要打包暴露出去,所以要创建一个路由对象
const router = express.Router();

/*******************接口逻辑******************/
//接口1:首页轮播图
//请求方法:get
//后台请求地址:/carousel
//前台访问地址:/index/carousel
//需要获取请求:req.query
//需要对数据库进行“插入”
//sql:`select * from carousel;`因为这个插入的SQL过于长，并且需要指定字段，因此使用注入的方式更简单
/*响应结果：
{code:1,msg:'成功插入一条数据'}
{code:0,msg:'插入失败'}
*/
router.get('/carousel', (req, res, next) => {
    pool.query('select * from index_carousel;', (err, data) => {
        if (err) { next(err); return; }
        if (data.length) {
            res.send({
                code: 200,
                msg: '成功获取轮播图数据',
                result: data
            })
        } else {
            res.send({
                code: 400,
                msg: '获取轮播图数据失败'
            })
        }
    })
})


/*******************接口逻辑******************/
//接口2:首页分类导航
//请求方法:get
//后台请求地址:/proType
//前台访问地址:/index/proType
//需要获取请求:req.query
//需要对数据库进行“插入”
//sql:`select * from product_type limit (pno-1)*enum,enum;`因为这个插入的SQL过于长，并且需要指定字段，因此使用注入的方式更简单
/*响应结果：
{code:1,msg:'成功插入一条数据'}
{code:0,msg:'插入失败'}
*/
router.get('/proType', (req, res, next) => {
    var obj = req.query;
    // obj.enum 默认为字符串，*1转为数字
    pool.query('select * from product_type limit ?,?;', [(obj.pno - 1) * obj.enum, obj.enum * 1], (err, data) => {
        if (err) { next(err); return; }
        if (data.length) {
            res.send({
                code: 201,
                msg: '成功获取商品类别',
                result: data
            })
        } else {
            res.send({
                code: 401,
                msg: '获取商品类别失败'
            })
        }
    })
})


/*******************接口逻辑******************/
//接口3:热销榜单的数据
//请求方法:get
//后台请求地址:/hot
//前台访问地址:/index/hot
//需要获取请求:req.query
//需要对数据库进行“插入”
//sql:`select * from product where is_hot>=10;`因为这个插入的SQL过于长，并且需要指定字段，因此使用注入的方式更简单
/*响应结果：
{code:1,msg:'成功插入一条数据'}
{code:0,msg:'插入失败'}
*/
router.get('/hot', (req, res, next) => {
    pool.query('select * from product where is_hot>=10;', (err, data) => {
        if (err) { next(err); return; }
        if (data.length) {
            res.send({
                code: 202,
                msg: '成功获取到热度大于等于10的热销商品的数据',
                result: data
            })
        } else {
            res.send({
                code: 402,
                msg: '获取热销商品数据失败'
            })
        }
    })
})


/*******************接口逻辑******************/
//接口4:精品商品的数据
//请求方法:get
//后台请求地址:/superior
//前台访问地址:/index/superior
//需要获取请求:req.query
//需要对数据库进行“插入”
//sql:`select * from product where is_superior=1;`因为这个插入的SQL过于长，并且需要指定字段，因此使用注入的方式更简单
/*响应结果：
{code:1,msg:'成功插入一条数据'}
{code:0,msg:'插入失败'}
*/
router.get('/superior', (req, res, next) => {
    pool.query('select * from product where is_superior=1;', (err, data) => {
        if (err) { next(err); return; }
        if (data.length) {
            res.send({
                code: 202,
                msg: '成功获取精品商品的数据',
                result: data
            })
        } else {
            res.send({
                code: 402,
                msg: '获取精品商品数据失败'
            })
        }
    })
})


// router.get('/data', (req, res, next) => {
//     var obj = req.query;
//     console.log(obj);
//     res.send(getdata);
// });


// 4.暴露路由(user)对象
module.exports = router;